package service

import (
	"context"
	"github.com/star-find-cloud/star-chat/group/domain"
	"github.com/star-find-cloud/star-chat/group/repo"
	userService "github.com/star-find-cloud/star-chat/user/domain"
)

type GroupServiceImpl struct {
	repo        repo.GroupRepo
	userService userService.UserService
}

func NewGroupService(repo repo.GroupRepo, userService userService.UserService) GroupService {
	return &GroupServiceImpl{repo: repo, userService: userService}
}

func (s *GroupServiceImpl) Create(ctx context.Context, group *domain.Group) (int64, error) {

	return s.repo.Create(ctx, group)
}

func (s *GroupServiceImpl) Get(ctx context.Context, id int64) (*domain.Group, error) {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) GetByMasterID(ctx context.Context, masterID int64) ([]*domain.Group, error) {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) GetByName(ctx context.Context, name string) ([]*domain.Group, error) {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) Update(ctx context.Context, group *domain.Group) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) UpdateMaster(ctx context.Context, newMasterID, id int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) UpdateName(ctx context.Context, id int64, name string) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) UpdateAvatar(ctx context.Context, id int64, avatar int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) Ban(ctx context.Context, id int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) Unban(ctx context.Context, id int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) KickOutUser(ctx context.Context, id int64, userID int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) AddUser(ctx context.Context, id int64, userID int64) error {
	//TODO implement me
	panic("implement me")
}

func (s *GroupServiceImpl) Delete(ctx context.Context, id int64) error {
	//TODO implement me
	panic("implement me")
}
